<template>
  <div id="app">
   <!-- 姓: <input type="text" v-model="firsName">
   名: <input type="text" v-model="lastName">
   <br>
   全名:{{fullName}}
   <button @click="fullName = '李四'">修改姓名</button> -->

  <input type="checkbox" v-model="allCheck">全选
  <div v-for="(item,index) in arr " :key="index">
    <input type="checkbox" v-model="item.flag">
  </div>
  </div>
</template>

<script>
export default {
  
     data() {
       return {
         firsName:'',
         lastName:'',
         arr:[
           {flag:false},
           {flag:false},
           {flag:false},
           {flag:false},
           {flag:false}
         ]
       }
     },
     //定义计算属性配置项
    computed:{
      //函数写法是简写方式
      //fullName 属性 依赖于data中的 firsName 和 lastName 两个变量
      // fullName(){
      //   return this.firsName + '_' + this.lastName
      // },
      //对象写法
      //计算属性值 需要手动修改时 要写成对象形式  不需要手动修改时可以使用函数形式
      //计算属性值的变化 而安全是因为 计算属性中所所依赖的变量发生变化 才会变化
      // fullName:{
      //   get(){
      //     return this.firsName + '_' + this.lastName
      //   },
      //   set(val){
      //     this.firsName = val.slice(0,1)
      //     this.lastName = val.slice(1)
      //   }
      // }
      allCheck:{
        get(){
          return this.arr.every(item=>item.flag)
        },
        set(val){
          this.arr.forEach(item=>item.flag=val)
        }
      }
    }
}
</script>
<style lang="scss">
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

nav {
  padding: 30px;

  a {
    font-weight: bold;
    color: #2c3e50;

    &.router-link-exact-active {
      color: #42b983;
    }
  }
}
</style>
